The present invention relates to high speed packet switching networks and more particularly to a mechanism for controlling X.25 traffic data flow at an access node of a high speed packet switching network.
Major users have many disparate networks such as SNA, DECnet, TCP/IP and X.25 data networks as well as logical networks of fax machines and one or more voice networks. For management reasons users want to have only one network for all traffic. The emergence of high speed/bandwidth networking technologies, such as ATM cell-based technology, now makes possible the integration of multiple types of traffic like speech, video and data over the same communication network. The communication circuits which may be shared in such network include transmission lines, program controlled processors, nodes or links, and data or packets buffers. In such network an access node should thus be designed for supporting the access through users"" existing communications equipment such as X.25 devices as well as for accommodating new equipment, such as equipment supporting ATM.
The present invention relates to access nodes in high speed cell switching networks supporting the attachment of devices using different protocols and particularly X.25 devices. In such networks, access nodes perform a set of functions known collectively as bandwidth management and congestion control, the role of which is to manage the network""s resources (bandwidth in particular) such that the overall resource utilization is maximized while continuing to satisfy user requests for performance guarantees, usually referred to as quality of service or QOS. Congestion control is based on bandwidth reservation at the network connection. For each connection requiring a specific quality of service according to the protocol used, a certain amount of bandwidth is reserved on the links traversed by the connection. The bandwidth reservation contract is enforced by specific techniques such as the well-known leaky bucket algorithm.
In classical packet switching networks, flow control algorithms are based on indowing and buffer depletion techniques. A windowing scheme consists of defining packet credits (often referred to as a window). A credit represents the number of packets that an origin device, also referred to as Data Terminal Equipment or DTE, can send across the network without receiving an acknowledgment either from the network or from the destination device. This credit mechanism prevents the origin DTE from sending data to the destination DTE when the network or the destination DTE cannot reliably expect to receive such data, e.g. when the network is congested. Under network congestion conditions, no acknowledgment will be received by the origin DTE, which will stop sending data as soon as packets already in its current window have been transmitted, i.e., when its credit has been decremented to zero.
Buffer depletion schemes rely on monitoring of access node buffers which are used for storing packets in anticipation of such routing or while awaiting availability of an output link. The principle is to define two thresholds, which correspond to percentages of the total amount of buffer space available, and two corresponding states: congested and not_congested. Buffer depletion techniques are often associated with windowing schemes.
More specifically, with regard to the X.25 protocol, the X.25 ITU-T recommendation specifies the windowing mechanism mentioned above as a flow control technique. This technique is currently implemented at LAP-B (Link Access Protocol-Balanced) level and at PLP (Link Access Protocol) level. The general principle of a common implementation relies on the existence of three windows which are defined in a X.25 virtual circuit. A first window (origin window) is associated with the interface between the origin X.25 DTE and the input access node of the network. A second window (destination window) is dedicated to the interface between the output access node of the network and the destination X.25 DTE. A third window (internal window) is associated with the internal part of the network, that is, all network elements on the path between the input and output access nodes. In operation, the destination DTE indicates it is congesting by not sending acknowledgments of received packets. When the output network access node does not receive expected acknowledgments, it sends packets only until its existing credit (destination window) is depleted. Similarly, when the input access node fails to receive the expected acknowledgments, it sends packets only until its own credit (internal window) is depleted and then stops transmitting packets into the network. Finally, an origin DTE which does not receive the expected acknowledgments sends packets only until its existing credit (origin window) is depleted. This windowing mechanism can be associated with buffer depletion techniques that allow detection of the existence network congestion. A common buffer depletion technique consists of computing the amount of buffer space used by LAP-B frames which have entered the network access node and which have not yet been handled, and then comparing this number to predefined low/high buffer utilization thresholds. The LAP-B acknowledgments are stopped when the utilization of buffers exceeds the high threshold, and re-started when buffer utilization falls below the low threshold; this scheme is intended to avoid network congestion.
The above-cited X.25 common flow control technique is quite satisfactory for classical packet switching networks. But when X.25 traffic is routed through high speed digital networks using bandwidth reservation, such ATM or Frame Relay backbones networks, the X.25 common flow control scheme is not efficient enough to avoid network congestion. Indeed, in such networks an access node can support a large number of X.25 data terminal equipments (e.g. 4096 DTEs). Consequently, the total buffer size that would be classically be required for avoiding congestion is the sum of the packet window sizes required for all the logical channels entering the node, which correspond to the attached DTEs. For example, for 4096 windows, each including 7 packets of 1048 bytes, an access node would need a buffer size of 4096*7*1048 bytes=30 megabytes). Thus, a significant number of buffers would be required for this common technique to be efficient, which would increase significantly the cost of the system since buffer memories, which use high-speed, high-performance technologies, are expensive.
Furthermore, the X.25 common flow control technique is a reactive mechanism which can initiate flow control operations (by terminating sending of acknowledgments) only after congestion is already detected. Moreover, using the common flow control scheme will penalize all X.25 users connected to a given access node even those who are not responsible of the congestion. Finally, in a high speed packet network which uses a leaky bucket mechanism to discard excess traffic in case of network congestion, the discarding of X.25 excess packets would eventually cause the attached X.25 data source device to resend discarded packets even if congestion conditions still existed. Such retransmission could actually aggravate the access node congestion state.
Accordingly, a new technique of flow control is required for X.25 traffic routed over a high speed digital network based on bandwidth reservation, in order to prevent the onset of network/node congestion rather than just reacting to existing congestion.
An object of the present invention is to provide a technique for effectively controlling the flow of traffic through a high speed digital network which implements bandwidth reservation techniques. A flow control technique implemented at an access node of such network makes use of a leaky bucket mechanism implemented in the node for enforcing a bandwidth reservation contract in order to initiate control of traffic flow before congestion occurs.
The technique comprises the steps of: receiving and storing an incoming packet; computing the number of tokens in a token pool; interrupting the transmission of received packet acknowledgments to the emitting source if the number of tokens falls below a predefined threshold, causing the emitting source to stop transmitting packets and allowing replenishment of the number of tokens the token pool; and restarting the transmission of received packet acknowledgments to the source if the number of tokens exceeds another defined threshold, such that the emitting source resumes transmission of packets.
This method causes the level of tokens in the token pool to be maintained in a range greater than zero to prevent network congestion.
The flow control technique implementing the present invention prevents network congestion by avoiding marking of packets as xe2x80x9credxe2x80x9d or discardable as would ordinarily occur in common packet switched networks, Avoiding xe2x80x9credxe2x80x9d marking avoids retransmissions of packets, which as noted earlier might actually result in an increase in congestion. Furthermore, as the present flow control technique is implemented at a network connection level, in case of congestion alert for a given connection, only those attached devices having virtual circuits established on that network connection, will be affected by operation of the flow control mechanism. Other devices attached to the access node will not be penalized, as happens in common packet switching networks.